#ifndef _CAMERA_H
#define _CAMERA_H

#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "3DMath.h"

#ifndef	PI
#define PI				3.14159265f
#endif


class Camera
{
private:
	Point3		look;					// Position in world coordinates of the camera
	Vector3		u, v, n,up;				// Camera coordinate axis
	double		viewAngle, aspect, nearDist, farDist;
public:
	Point3		eye;
	Camera();
	void		setShape( float angle, float aspectRatio, float nearN, float farN );
	void		lookAt( Point3 eye, Point3 look, Vector3 up );
	void		lookAt( float eyex, float eyey, float eyez,
						float lookx, float looky, float lookz,
						float upx, float upy, float upz );
	void		roll( float angle );
	void		pitch( float angle );
	void		yaw( float angle );
	void		slide( float Upart, float Vpart, float Npart );
	void        setEye(float x,float y, float z);

	void		setModelViewMatrix();		// Private function to set MODELVIEW MATRIX
};

#endif